<?php
/**
 * Application level Controller
 *
 * This file is application-wide controller file. You can put all
 * application-wide controller-related methods here.
 *
 * PHP 5
 *
 * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
 * Copyright 2005-2011, Cake Software Foundation, Inc. (http://cakefoundation.org)
 *
 * Licensed under The MIT License
 * Redistributions of files must retain the above copyright notice.
 *
 * @copyright     Copyright 2005-2011, Cake Software Foundation, Inc. (http://cakefoundation.org)
 * @link          http://cakephp.org CakePHP(tm) Project
 * @package       app.Controller
 * @since         CakePHP(tm) v 0.2.9
 * @license       MIT License (http://www.opensource.org/licenses/mit-license.php)
 */

App::uses('Controller', 'Controller');

/**
 * Application Controller
 *
 * Add your application-wide methods in the class below, your controllers
 * will inherit them.
 *
 * @package       app.Controller
 */
class AppController extends Controller { 

	public $scaffold = 'root';
	
	public $components = array(
        'Auth' => array(
			'className' => 'MyAuth'
		),
        'Acl',
        'Session',
        'Cookie',
    );
	
	public $helpers = array(
		'Js' => array(
			'Jquery'
		),
		'Session',
		'Html',
		'Form' => array(
			'className' => 'MyForm'
		)
	);
	
	function beforeFilter() {
		if(sizeof($this->uses) && $this->{$this->modelClass}->Behaviors->attached('Logable')) {
			$this->{$this->modelClass}->setUserData(array('User' => $this->Auth->user()));
		} 
		$this->layout = (is_null($this->Auth->user())) ? 'outsite' : 'insite';
		
		if(!empty($this->request->params['prefix']) && $this->request->params['prefix'] == 'root') {
			$this->layout = 'default';
			$role = $this->Auth->user('role');
			if(empty($role) || $role != 'root') {
				return $this->redirect('/users/login');
			}
		}
	}
}
